Terraform import
既に存在しているインフラをTerraform管理下に置きたい場合に使える
docs
2つの方法
λ terraform import
既存リソースをstateにだけ追加する
コードは自分で書く必要がある
import block
stateもコードも自動で用意できる
複数リソースもまとめてインポート可能
注意点
すべてのリソースがインポート可能なわけではない
各リソースのTerraform公式ドキュメントに「importable」の記載があるか確認する必要がある
何が嬉しい?
既存インフラをコード管理できる
すでに作られているAWS EC2やS3バケットなどを、いまからTerraformで管理できるようになる
もし import がなかったら、「一度削除 → 再作成」しないと Terraform 管理できない
インフラのIaC化を後付けで実現できる
例えば
他の人がAWSコンソールでポチポチ作ったインフラ
手動で作ってしまったリソース
これらを いまから Terraform に取り込んで、コードベースで変更管理できる。
リソースの依存関係をコードで表現できる
手動で作ったリソースだと依存関係が頭の中にしかない
Terraform にインポートすると、依存リソースを depends_on でつなげられて、将来の変更が安全になる。
万が一の再構築時にも役立つ
Terraform に載せておけば、災害復旧時にコードベースでインフラを再構築できるようになる。